Labels bearing information in any of a number of different bar code formats are commonly affixed to products, packaging, or other items and are used in many applications. It is common, for example, to encode retail product identification information in a bar code format on a product package or a label affixed to a product package. Bar code symbols are also used on a broad range of retail packages for check-out and inventory purposes. A bar code reader, located at the check-out station of a retail establishment for example, may be used by a clerk to enter product identification data from a bar code label into an associated point-of-sale computer system.
Bar codes typically consist of a series of parallel light and dark rectangular areas of varying widths. The light areas are often referred to as xe2x80x9cspacesxe2x80x9d and the dark areas as xe2x80x9cbars,xe2x80x9d with the bars and spaces arranged and selected to define different characters of a particular bar code.
A bar code label is typically read by a bar code reader, such as a scanner, which illuminates the target containing the bar code label to be read and detects reflected and/or refracted light from the bars and spaces of the bar code. One common method of illuminating the target is by use of a scanning laser beam, in which case a spot of light is swept across the bar code label and the intensity of returned light is detected by a photodetector. The photodetector generates an electrical signal having an amplitude determined by the intensity of the detected light.
Another method for illuminating the target containing the bar code label and detecting return light is by use of a uniform light source and an array of optical detectors connected to an analog shift register (commonly called a charge-coupled device or CCD). Such a CCD imager can be a single line CCD array or else a two-dimensional CCD array. In such a technique, as with a scanning laser, an electrical signal is generated having an amplitude determined by the intensity of the collected light.
Alternately, the bar code reader may generate an electrical signal having an amplitude determined by the intensity of detected light without illuminating the target, as described, for example, in U.S. Pat. No. 6,073,851, which is assigned to the assignee of the present application and hereby incorporated by reference as if set forth fully herein.
In either the laser or CCD technique, the amplitude of the electrical detector signal has one level for dark bars and a second level for light spaces. A relatively large amplitude of the electrical signal indicates a high level of reflected and/or refracted light and, therefore, light areas of a target (such as white spaces of the bar code), while a relatively small amplitude of the electrical signal indicates a low level of reflected and/or refracted light and, therefore, dark areas of a target (such as bars of the bar code).
The widths of light areas and dark areas on the target are measured by signal processing circuitry. The electrical signal is indicative of the widths of dark areas and light areas of the scanned target. As a target is scanned, positive-going transitions and negative-going transitions in the electrical signal occur, signifying transitions between dark areas and light areas (such as bars and spaces). Various techniques for measuring the widths of light areas and dark areas on a target are described in, for example, U.S. Pat. No. 4,000,397 (Hebert et al.), U.S. Pat. No. 5,463,211 (Arends et al.) and U.S. Pat. No. 5,446,271 (Cherry et al.), and in copending patent application Ser. No. 09/658,300 entitled xe2x80x9cMulti-format Optical Readerxe2x80x9d (filed Sep. 8, 2000 as a continuation of application Ser. No. 09/118,228 filed Jul. 17, 1998), each of which is assigned to the assignee of the present application, and each of which is hereby incorporated by reference as if set forth fully herein.
A decoder attempts to decode the information contained in the electrical signal. Various techniques for reading and processing electrical bar code signals are described in, for example, U.S. Pat. Nos. 4,000,397, 5,463,211 and 5,446,271, each of which is referenced above and incorporated herein.
While the use of bar codes greatly enhances the efficiency of the check-out process in retail establishments and additionally allows the accumulation of sales or inventory data which is important for proper management control, difficulties may be encountered due to the amount of data from the electrical signal that must be processed.
For example, the bar code reader cannot predict where the bar code data will be on the product and therefore must scan any area in which the target bar code might be located. As a result, the bar code reader scans much more area than necessary to read the bar code, including parts of the product that do not contain the bar code. The bar code reader must therefore read and process far more information than the target bar code data. Moreover, this task is made more burdensome by the fact that a large amount of extraneous data resembling bar code data may need to be discriminated from the actual target bar code data.
Typically, the detector will detect light reflected from parts of the product packaging other than the bar code and will output an electrical signal indicative of light areas and dark areas of the packaging that do not represent a bar code. The light areas and dark areas might be found, for example, in text, graphics or other printing that are often found on packaging and which may produce an electrical signal resembling that produced by a bar code.
Because bar code readers typically must process the entire electrical signal, whether produced from the bar code or other areas of the target, to determine which parts represent bar code data, processing time and resources are typically wasted on reading and processing extraneous data. Given that the bar code typically occupies a small portion of a target, much of the electrical signal does not represent bar code data, but still must be processed to determine that fact. This increases the load on the decoder beyond the load that would exist if only bar code data were contained in the electrical signal.
To facilitate determination of what portion of the electrical signal constitutes bar code data, bar codes sometimes include xe2x80x9cquiet zonesxe2x80x9d that border the outermost bars and spaces of the bar code and mark the location of the bar code. Typically, these quiet zones comprise a white area that is substantially wider than the widest bar or space of a particular bar code symbology. The quiet zones are theoretically designed so that they can be easily recognized by the bar code reader. The bar code reader can be programmed to disregard information that is not bounded by the quiet zone.
Quiet zones, however, are not always effective. Sometimes quiet zones are contaminated by dirt, smeared ink, or other particles, so that the bar code reader does not recognize the quiet zone, potentially preventing a successful scan. Other times, the bar code may be printed on the edge of a package, and some portion of the quiet zone may not be printed on the package, potentially preventing a successful scan.
Further, some bar code symbologies do not employ quiet zones at all. Bar code readers that rely on the existence of quiet zones may be unable to read such symbologies.
The difficulties arising from the large amount of data received from the detector may be exacerbated by the number of different bar code symbologies that may be in use. Because a bar code reader at a particular location may need to read bar codes in many different symbologies, the bar code reader circuitry in such a situation must be capable of recognizing and decoding bar codes printed according to any of a variety of symbologies used or expected in a particular application. This requirement presents substantial difficulties since bar codes in common usage vary significantly in their formats. These codes include, for example, Code 3 of 9, Interleaved 2 of 5 Code, Codabar, Code 93, Code 128, the Universal Product Code (UPC), and the European Article Numbering (EAN) code.
Each bar code symbology requires a separate, unique decoding algorithm. Thus, the amount of time required to perform the decoding algorithms increases as the decoder is required to discriminate among more bar code types. Further, because noise present in the optical and analog electronic signal paths can corrupt the data in a given scan, a number of scans of data may be necessary before a good read decision can be made.
Another factor that adds to the burdens of reading and processing bar code data is the typical requirement that such activity must be carried out relatively rapidly, so that as many scans as possible may be carried out in the shortest possible time frame, to increase the chances of obtaining a successful read.
Speed in bar code readers is important because available processing time is short. In a laser scanner, for example, the scanning speed of the moving laser beam is sufficiently high that the bar code reader often must rapidly analyze the electrical scan signal to determine whether a bar code label has been scanned and, if it has, must rapidly analyze the data encoded on the bar code label. It may be possible to use faster hardware to attempt to decrease decoding time, but faster hardware may entail significantly greater cost and increased power requirements, while the market for bar code readers is cost sensitive. Faster hardware is also generally larger in size, possibly requiring larger, bulkier bar code readers and, in handheld scanners, possibly producing a corresponding sacrifice of ergonomics (e.g., size and shape of features). Since processing hardware has size, power and cost limitations, software algorithms that can decrease the amount of processing needed to perform the decoding operation are desirable to improve decoder performance.
U.S. Pat. No. 6,059,187 (xe2x80x9cthe ""187 patentxe2x80x9d) discloses a system that compares the widths of two adjacent dark areas (that are separated by a single light area) or two adjacent light areas (that are separated by a single dark area), or a light area and an adjacent dark area. The system determines whether or not a ratio of the widths of adjacent light or dark areas falls within a range of 0.2-5.0. The ""187 patent discloses that the range is based on the widest bar code element being no more than five times wider than the narrowest bar code element for a particular bar code symbology. Light or dark areas not falling within that range are discarded.
The system disclosed in the ""187 patent, however, is prone to being over-inclusive because it compares only adjacent light or dark areas, and does not compare light or dark areas that are separated by more than one other light or dark area. While the relative sizes of non-adjacent light or dark areas may not be within the range of 0.2 to 5, the system of the ""187 patent nevertheless deems the areas potential bar code data. For example, consecutive light areas or dark areas may have the following relative widths: 1, 2, 5, 6, and 25. The system disclosed in the ""187 patent would deem all of the light or dark areas potential bar code data because all of the areas are between 0.2 and 5 times as wide as areas separated by no more than one other area. For example, the values 1 and 5, 2 and 6, and 5 and 25 all are within the permissible range of ratios. The ratio of the widths of the outermost areas (which have relative widths of 1 and 25), however, is 25. The outermost areas should not be deemed parts of a bar code symbology with light and dark areas that have relative widths of no more than 5. The over-inclusiveness of the ""187 system may cause the system to further process more data than might be further processed if the system were improved to compare the relative widths of light and dark areas separated by more than one other light or dark area.
It would therefore be advantageous to provide a system that pre-screens data, reducing the load on the decoder, in a relatively inexpensive and simple manner, and in a manner that is less over-inclusive than existing systems. It would be further advantageous to provide a system that can help the bar code reader to read bar codes that are not bounded by a quiet zone or other such delimiters.
According to one aspect of the present invention, data indicative of light areas and dark areas on a target is pre-screened to determine if it might represent bar code data and therefore should be further processed. If the data is determined not to potentially represent bar code data, the data is not further processed, reducing the overall amount of processing that would otherwise be required to read the data. Certain techniques as described herein may be found especially suitable for use in bar code scanners which use reflected and/or refracted light to read code made up of bars and spaces.
Briefly described, in one embodiment, a bar code reading system for pre-screening data is operative to identify data that may potentially represent bar code data. Data obtained from optically reading a target is pre-screened by determining whether sequences of data meet a certain predefined condition or conditions. The bar code reading system determines whether the relative widths of a sequence of light areas and dark areas on the target are consistent with one or more bar code symbologies. Data that is identified to potentially represent a bar code is further processed in an attempt to decode the data.
A bar code reader constructed in accordance with techniques disclosed herein preferably works with a variety of bar code symbologies by identifying data that conforms to any of several bar code symbologies. Non-bar code data may be disposed of faster and more efficiently than simply by using the decoding algorithms that otherwise would typically be needed to process the data to determine whether the data represents a bar code.
Preferably, the pre-screening algorithms and/or processes described herein are implemented with a programmed microprocessor. A suitable hardware based apparatus, however, may be constructed to implement them.
Further variations, enhancements and modifications are also described herein.